package com.linhai.scm.entity.base;

import java.util.Date;

import javax.persistence.Column;
//import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
//import javax.persistence.Table;

import javax.persistence.MappedSuperclass;

import org.hibernate.annotations.GenericGenerator;

import com.linhai.general.enums.Enum_DataStatus;

/**
 *	数据库基础类，公用的属性在此，所有数据库实体均应继承此类
 * @author linhai
 *
 */

//@Entity//表示为实体类
//@Table(name="Product")//表名注解
@MappedSuperclass//基类标识	
public class BaseBean {
	
	private long objID;
	private Date createTime;
	private Enum_DataStatus	status;
	
	public BaseBean(){
		createTime=new java.util.Date();
	}
	
	/**
	 * 获取对象ID，主键
	 * @return
	 */
	@Id//表示主键
	@GenericGenerator(name = "generator", strategy = "native")//指定主键生成器的名称，与主键的生成方式
	@GeneratedValue(generator = "generator")//使用指定的主键生成器
	@Column(name = "objID")// 类属性对应着表字段
	public long getObjID() {
		return objID;
	}
	
	/**
	 * 获取创建时间
	 * @return
	 */
	@Column(name = "createTime")// 类属性对应着表字段
	public Date getCreateTime(){
		return createTime;
	}
	
	/**
	 * 获取记录状态，为0时表示假删除
	 * @return
	 */
	@Column(name = "status")// 类属性对应着表字段
	public Enum_DataStatus getStatus(){
		return this.status;
	}
	
	public void setObjID(long objID) {
		this.objID = objID;
	}
	
	/**
	 * 设置创建时间
	 * @param createTime
	 */
	public void setCreateTime(Date createTime){
		this.createTime=createTime;
	}
	
	/**
	 * 设置记录状态，为0时表示删除
	 * @param status
	 */
	public void setStatus(Enum_DataStatus status){
		this.status=status;
	}
	
}
